import Queue from '../data-structures/queue.js'

/**
 * 模拟击鼓传花游戏
 * 游戏规则：在这个游戏中，孩子们围城一个圆圈，把花尽快地传递给旁边的人。某一时刻传花停止，
 * 这个时候花在谁手里，谁就退出圆圈、结束游戏。重复这个过程，直到只剩一个孩子（胜者）。
 * @param {array} elementsList 
 * @param {number} num 
 * @return
 */
export function hotPotato(elementsList, num) {
  const queue = new Queue()
  const eliminatedList = []

  for (let i = 0; i < elementsList.length; i++) {
    queue.enqueue(elementsList[i])
  }

  while (queue.size() > 1) {
    for (let i = 0; i < num; i++) {
      queue.enqueue(queue.dequeue())
    }
    eliminatedList.push(queue.dequeue())
  }

  return {
    eliminated: eliminatedList,
    winner: queue.dequeue()
  }
}
